package br.com.speedprevweb.bean;

import br.com.speedprevweb.dao.TipoRequerimentoDao;
import br.com.speedprevweb.dao.impl.TipoRequerimentoDaoImpl;
import br.com.speedprevweb.model.TipoRequerimento;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "tipoRequerimentoBean")
@SessionScoped
public class TipoRequerimentoBean implements Serializable {

  private TipoRequerimento tipoRequerimento = new TipoRequerimento();
  private List<TipoRequerimento> listaTipoRequerimento = new ArrayList();

  public TipoRequerimentoBean() {
    listaTipoRequerimento = new TipoRequerimentoDaoImpl().listarTodos();
    tipoRequerimento = new TipoRequerimento();
  }

  public TipoRequerimento getTipoRequerimento() {
    return tipoRequerimento;
  }

  public void setTipoRequerimento(TipoRequerimento tipoRequerimento) {
    this.tipoRequerimento = tipoRequerimento;
  }

  public List<TipoRequerimento> getListaTipoRequerimento() {
    return listaTipoRequerimento;
  }

  public void setListaTipoRequerimento(List<TipoRequerimento> listaTipoRequerimento) {
    this.listaTipoRequerimento = listaTipoRequerimento;
  }

  public String incluirTipoRequerimento() {
    tipoRequerimento = new TipoRequerimento();
    return "TipoRequerimentoDetalhe";
  }

  public String preparaAlterarTipoRequerimento() {
    return "TipoRequerimentoDetalhe";
  }

  public String excluirTipoRequerimento() {
    TipoRequerimentoDao tpRegimeDao = new TipoRequerimentoDaoImpl();
    tpRegimeDao.excluir(tipoRequerimento);
    listaTipoRequerimento = new TipoRequerimentoDaoImpl().listarTodos();
    tipoRequerimento = new TipoRequerimento();
    return "TipoRequerimento";
  }

  public String salvar() {
    if (tipoRequerimento.getIdTipoRequerimento() == 0) {
      incluir();
    } else {
      alterar();
    }
    return "TipoRequerimento";
  }

  public void incluir() {
    TipoRequerimentoDao tpRequerimentoDao = new TipoRequerimentoDaoImpl();
    tpRequerimentoDao.salvar(this.tipoRequerimento);
    listaTipoRequerimento = new TipoRequerimentoDaoImpl().listarTodos();
    tipoRequerimento = new TipoRequerimento();
  }

  public void alterar() {
    TipoRequerimentoDao tpRegimeDao = new TipoRequerimentoDaoImpl();
    tpRegimeDao.alterar(tipoRequerimento);
  }

  public String cancelar() {
    return "TipoRequerimento";
  }

  private void atualizarDataTable() {
    listaTipoRequerimento = new TipoRequerimentoDaoImpl().listarTodos();
    tipoRequerimento = new TipoRequerimento();
  }

  public int totalRegistros() {
    return listaTipoRequerimento.size();
  }
}
